# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.

srcdir =	@srcdir@
VPATH =		@srcdir@
top_srcdir =	@top_srcdir@

VERSION=@BIND9_VERSION@

@BIND9_MAKE_INCLUDES@

CINCLUDES =	-I. -Iinclude ${ISC_INCLUDES} @ISC_OPENSSL_INC@
CDEFINES =	@CRYPTO@ -DTESTS="\"${top_builddir}/lib/isc/tests/\""

ISCLIBS =	../libisc.@A@ @ISC_OPENSSL_LIBS@
ISCDEPLIBS =	../libisc.@A@

LIBS =		@LIBS@ @CMOCKA_LIBS@
CFLAGS =	@CFLAGS@ @CMOCKA_CFLAGS@

OBJS =		isctest.@O@
SRCS =		isctest.c aes_test.c atomic_test.c buffer_test.c \
		counter_test.c errno_test.c file_test.c hash_test.c \
		heap_test.c ht_test.c inet_ntop_test.c lex_test.c \
		mem_test.c netaddr_test.c parse_test.c pool_test.c \
		print_test.c queue_test.c radix_test.c random_test.c \
		regex_test.c result_test.c safe_test.c siphash_test.c sockaddr_test.c \
		socket_test.c socket_test.c symtab_test.c task_test.c \
		taskpool_test.c time_test.c timer_test.c

SUBDIRS =
TARGETS =	aes_test@EXEEXT@ atomic_test@EXEEXT@ buffer_test@EXEEXT@ \
		counter_test@EXEEXT@ errno_test@EXEEXT@ file_test@EXEEXT@ \
		hash_test@EXEEXT@ heap_test@EXEEXT@ ht_test@EXEEXT@ \
		inet_ntop_test@EXEEXT@ lex_test@EXEEXT@ mem_test@EXEEXT@ \
		netaddr_test@EXEEXT@ parse_test@EXEEXT@ pool_test@EXEEXT@ \
		print_test@EXEEXT@ queue_test@EXEEXT@ radix_test@EXEEXT@ \
		random_test@EXEEXT@ regex_test@EXEEXT@ result_test@EXEEXT@ \
		safe_test@EXEEXT@ siphash_test@EXEEXT@ sockaddr_test@EXEEXT@ socket_test@EXEEXT@ \
		socket_test@EXEEXT@ symtab_test@EXEEXT@ task_test@EXEEXT@ \
		taskpool_test@EXEEXT@ time_test@EXEEXT@ timer_test@EXEEXT@

@BIND9_MAKE_RULES@

atomic_test@EXEEXT@: atomic_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ atomic_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

aes_test@EXEEXT@: aes_test.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ aes_test.@O@ \
		${ISCLIBS} ${LIBS}

buffer_test@EXEEXT@: buffer_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ buffer_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

counter_test@EXEEXT@: counter_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ counter_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

errno_test@EXEEXT@: errno_test.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ errno_test.@O@ \
		${ISCLIBS} ${LIBS}

file_test@EXEEXT@: file_test.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ file_test.@O@ \
		${ISCLIBS} ${LIBS}

hash_test@EXEEXT@: hash_test.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ hash_test.@O@ \
		${ISCLIBS} ${LIBS}

heap_test@EXEEXT@: heap_test.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ heap_test.@O@ \
		${ISCLIBS} ${LIBS}

ht_test@EXEEXT@: ht_test.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ ht_test.@O@ \
		${ISCLIBS} ${LIBS}

inet_ntop_test.c.@O@:	${top_srcdir}/lib/isc/ntop_test.c
inet_ntop_test@EXEEXT@: inet_ntop_test.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ inet_ntop_test.@O@ \
		${ISCLIBS} ${LIBS}

lex_test@EXEEXT@: lex_test.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ lex_test.@O@ \
		${ISCLIBS} ${LIBS}

mem_test@EXEEXT@: mem_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ mem_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

netaddr_test@EXEEXT@: netaddr_test.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ netaddr_test.@O@ \
		${ISCLIBS} ${LIBS}

parse_test@EXEEXT@: parse_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ parse_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

pool_test@EXEEXT@: pool_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ pool_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

print_test.@O@:	${top_srcdir}/lib/isc/print.c
print_test@EXEEXT@: print_test.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ print_test.@O@ \
		${ISCLIBS} ${LIBS}

queue_test@EXEEXT@: queue_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ queue_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

radix_test@EXEEXT@: radix_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ radix_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

random_test@EXEEXT@: random_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ random_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS} -lm

regex_test@EXEEXT@: regex_test.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ regex_test.@O@ \
		${ISCLIBS} ${LIBS}

result_test@EXEEXT@: result_test.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ result_test.@O@ \
		${ISCLIBS} ${LIBS}

safe_test@EXEEXT@: safe_test.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ safe_test.@O@ \
		${ISCLIBS} ${LIBS}

siphash_test@EXEEXT@: siphash_test.@O@ ../siphash.c ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ siphash_test.@O@ \
		${ISCLIBS} ${LIBS}

socket_test@EXEEXT@: socket_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ socket_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

sockaddr_test@EXEEXT@: sockaddr_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ sockaddr_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

symtab_test@EXEEXT@: symtab_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ symtab_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

task_test@EXEEXT@: task_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ task_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

taskpool_test@EXEEXT@: taskpool_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ taskpool_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

time_test@EXEEXT@: time_test.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ time_test.@O@ \
		${ISCLIBS} ${LIBS}

timer_test@EXEEXT@: timer_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ timer_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

unit::
	sh ${top_builddir}/unit/unittest.sh

clean distclean::
	rm -f ${TARGETS}
	rm -f atf.out
